/**
 * ESP32-Arduino-Framework
 * Arduino开发环境下适用于ESP32芯片系列开发板的应用开发框架。
 * 
 * Author: Billy Zhang（billy_zh@126.com）
 */
#ifndef _XIAOZHI_EVENT_HANDLER_H
#define _XIAOZHI_EVENT_HANDLER_H

#include <cstdint>
#include "../event_handler.h"

class XiaoZhiEventHandler : public EventHandler {
public:
    static const int kEventSendAudio            = 1 << 8;
    static const int kEventWakeWordDetected     = 1 << 9;  
    static const int kEventVadChange            = 1 << 10;

    XiaoZhiEventHandler() { }
    virtual ~XiaoZhiEventHandler() { }
    
    uint32_t GetEventBits() override {
        return kEventSendAudio | kEventWakeWordDetected | kEventVadChange | EventHandler::GetEventBits();
    }

    bool HandleEvent(uint32_t event_bits) override;

};

#endif //_XIAOZHI_EVENT_HANDLER_H